﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ZdSoft.Model;
using ZdSoft.IDAL;
using ZdSoft.DAL;

using NHibernate.Criterion;
using Castle.Services.Transaction;
using Castle.ActiveRecord.Queries;

namespace ZdSoft.BLL
{
    public class RoleBLL:BLLBase<Role,RoleDAL>,IRoleDAL
    {

        public void AssignAuthorize(int roleID, string systemfunctions)
        {
            //获取需要修改的权限角色
            Role role = manager.Get(roleID);
            //清空以前的角色功能
            if(role.SystemFunctions==null)
            {
                role.SystemFunctions = new List<SystemFunction>();
            }
            role.SystemFunctions.Clear();
            SystemFunctionDAL funManager = new SystemFunctionDAL();

            string[] sysStr = systemfunctions.Split(',');
            if(sysStr!=null&&sysStr.Length>0)
            {
                foreach(var fun in sysStr)
                {
                    if (string.IsNullOrEmpty(fun)) continue;//只要功能还存在就继续
                    role.SystemFunctions.Add(funManager.Get(int.Parse(fun)));//根据功能id获取功能名称
                }
            }
            //更新角色，同时更新角色对应的功能
            manager.Update(role);
        }
    }
}
